home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / xml4j.jar / com / ibm / xml / framework / XMLDeclRecognizer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-08-30  |  1.4 KB  |  81 lines

  1. package com.ibm.xml.framework;
  2.  
  3. import org.xml.sax.InputSource;
  4.  
  5. public abstract class XMLDeclRecognizer {
  6.    private static final char[] xml_string = new char[]{'x', 'm', 'l'};
  7.    private static final char[] version_string = new char[]{'v', 'e', 'r', 's', 'i', 'o', 'n'};
  8.    private static final char[] encoding_string = new char[]{'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g'};
  9.  
  10.    public abstract XMLReader recognize(ParserState var1, InputSource var2, ChunkyByteArray var3, boolean var4) throws Exception;
  11.  
  12.    protected final int prescanXMLDeclOrTextDecl(XMLReader var1, boolean var2) throws Exception {
  13.       if (!var1.skippedChar('<')) {
  14.          return -1;
  15.       } else if (!var1.skippedChar('?')) {
  16.          return -1;
  17.       } else if (!var1.skippedString(xml_string)) {
  18.          return -1;
  19.       } else {
  20.          var1.skipPastSpaces();
  21.          if (var1.skippedString(version_string)) {
  22.             var1.skipPastSpaces();
  23.             if (!var1.skippedChar('=')) {
  24.                return -1;
  25.             }
  26.  
  27.             var1.skipPastSpaces();
  28.             boolean var3;
  29.             if (!(var3 = var1.skippedChar('\'')) && !var1.skippedChar('"')) {
  30.                return -1;
  31.             }
  32.  
  33.             int var4 = var3 ? 39 : 34;
  34.  
  35.             while(!var1.skippedChar((char)var4)) {
  36.                if (!var1.skippedVersionNum()) {
  37.                   return -1;
  38.                }
  39.             }
  40.  
  41.             if (!var1.skippedSpace()) {
  42.                return -1;
  43.             }
  44.  
  45.             var1.skipPastSpaces();
  46.          } else if (var2) {
  47.             return -1;
  48.          }
  49.  
  50.          if (!var1.skippedString(encoding_string)) {
  51.             return -1;
  52.          } else {
  53.             var1.skipPastSpaces();
  54.             if (!var1.skippedChar('=')) {
  55.                return -1;
  56.             } else {
  57.                var1.skipPastSpaces();
  58.                boolean var6;
  59.                if (!(var6 = var1.skippedChar('\'')) && !var1.skippedChar('"')) {
  60.                   return -1;
  61.                } else {
  62.                   int var5 = var1.fCurrentOffset;
  63.                   int var7 = var6 ? 39 : 34;
  64.                   if (!var1.skippedAlpha()) {
  65.                      return -1;
  66.                   } else {
  67.                      while(!var1.lookingAtChar((char)var7)) {
  68.                         if (!var1.skippedEncName()) {
  69.                            return -1;
  70.                         }
  71.                      }
  72.  
  73.                      return var1.addString(var5, var1.fCurrentOffset - var5);
  74.                   }
  75.                }
  76.             }
  77.          }
  78.       }
  79.    }
  80. }
  81.